ديف أوبس

تأمين خادوم سامبا على أوبنتو

تأمين خادوم سامبا لتخديم الملفات والطباعة على أوبنتو

يُعد خادوم سامبا (Samba) من أكثر الحلول شيوعاً لتبادل الملفات والطباعة بين أنظمة لينكس وWindows. يتيح سامبا دمج خواديم أوبنتو بسهولة في بيئات شبكية تحتوي على أجهزة تعمل بأنظمة مختلفة، وذلك عبر بروتوكول SMB/CIFS. غير أن تشغيل خادوم سامبا بدون تأمين مناسب يعرض الشبكة ومستخدميها لمخاطر أمنية خطيرة، مثل الوصول غير المصرح به أو تسريب المعلومات أو استغلال الثغرات. لهذا، فإن تأمين خادوم سامبا يجب أن يكون من أولويات مسؤولي النظام قبل نشره في بيئة الإنتاج.

أولاً: فهم أساسيات سامبا والبروتوكولات المستخدمة

سامبا هو تطبيق مجاني ومفتوح المصدر يُمكن أن يعمل كخادوم SMB/CIFS أو كعميل. يسمح هذا البروتوكول بتبادل الملفات، التوثيق، الوصول إلى الموارد المشتركة (مثل الطابعات)، وتسجيل الدخول إلى الشبكات باستخدام Active Directory. بروتوكول SMB (Server Message Block) الذي يستخدمه سامبا يُعتبر أحد بروتوكولات الطبقة السابعة في نموذج OSI، ويُستخدم على نطاق واسع في الشبكات المحلية.

ثانياً: تثبيت خادوم سامبا على أوبنتو

bash
sudo apt update sudo apt install samba

بعد التثبيت، يكون الملف الرئيسي لإعدادات سامبا هو: /etc/samba/smb.conf. من المهم أن تتم أي تعديلات عليه بحذر مع الاحتفاظ بنسخة احتياطية.

ثالثاً: إنشاء مجلدات المشاركة وضبط أذونات الوصول

لتأمين المشاركة، يجب تحديد من له حق القراءة أو الكتابة إلى الملفات والمجلدات المشتركة. يُفضّل إنشاء مجلد جديد مثلاً:

bash
sudo mkdir -p /srv/samba/partage sudo chown nobody:nogroup /srv/samba/partage sudo chmod 0775 /srv/samba/partage

ثم إضافته في ملف الإعداد smb.conf بهذا الشكل:

ini
[partage] path = /srv/samba/partage browsable = yes read only = no guest ok = no

رابعاً: إنشاء المستخدمين وضبط كلمات المرور

يجب ربط المستخدمين المحليين بسامبا، ويُفضل إنشاء مستخدمين مخصصين لخدمة سامبا فقط، ومن دون صلاحيات واسعة على النظام:

bash
sudo useradd -M -s /sbin/nologin sambauser sudo smbpasswd -a sambauser

ثم تعيين الأذونات المناسبة للمجلد المشترك:

bash
sudo chown sambauser:sambauser /srv/samba/partage

خامساً: تقييد الوصول باستخدام إعدادات smb.conf

ضبط الإعدادات التالية يُسهم في تأمين الخدمة:

ini
[global] server string = Samba Server workgroup = WORKGROUP security = user map to guest = never log file = /var/log/samba/log.%m max log size = 1000 dns proxy = no interfaces = lo eth0 bind interfaces only = yes hosts allow = 192.168.1.0/24 hosts deny = 0.0.0.0/0

سادساً: تفعيل جدار الحماية UFW وتحديد القواعد

من الضروري استخدام جدار الحماية للتحكم في المنافذ التي يستخدمها سامبا، وهي 137، 138، 139، و445:

bash
sudo ufw allow from 192.168.1.0/24 to any port 137 sudo ufw allow from 192.168.1.0/24 to any port 138 sudo ufw allow from 192.168.1.0/24 to any port 139 sudo ufw allow from 192.168.1.0/24 to any port 445 sudo ufw enable

يجب حظر أي وصول خارجي إلى هذه المنافذ من خارج الشبكة المحلية.

سابعاً: تفعيل التشفير في الاتصالات

يدعم سامبا بدءاً من الإصدارات الحديثة ميزة تشفير البيانات باستخدام بروتوكول SMB3. يمكن فرض التشفير عبر الإعداد التالي:

ini
[global] smb encrypt = required

ومع ذلك، ينبغي الانتباه إلى أن بعض الأنظمة القديمة قد لا تدعم التشفير، لذا يجب موازنة بين الأمان والتوافق.

ثامناً: تسجيل الدخول والمراقبة

مراقبة النشاط على خادوم سامبا أمر بالغ الأهمية لرصد أي نشاط مريب أو محاولات دخول غير مصرح بها. تشمل هذه الأدوات:

  • logwatch: لإعداد تقارير يومية من ملفات السجلات

  • fail2ban: لحظر العناوين التي تقوم بمحاولات دخول فاشلة متكررة

  • auditd: لمراقبة الوصول إلى الملفات

إعداد fail2ban لخدمة سامبا

يمكن إنشاء ملف إعداد خاص بسامبا في /etc/fail2ban/jail.local:

ini
[samba] enabled = true port = 137,138,139,445 filter = samba logpath = /var/log/samba/log.* maxretry = 3 bantime = 3600

يجب التأكد من وجود ملف الفلتر المناسب في /etc/fail2ban/filter.d/samba.conf.

تاسعاً: تقييد بروتوكولات SMB القديمة

البروتوكولات القديمة مثل SMB1 تحتوي على ثغرات أمنية خطيرة مثل EternalBlue. ينبغي تعطيل SMB1 نهائياً من خلال:

ini
[global] min protocol = SMB2 max protocol = SMB3

عاشراً: استخدام Active Directory لتوثيق الوصول (اختياري)

عند توفر Active Directory، يمكن ربط خادوم سامبا به لتطبيق سياسات التوثيق المركزية. هذا الخيار متقدم ويتطلب تكوين Kerberos وWinbind.

bash
sudo apt install krb5-user winbind libnss-winbind libpam-winbind

وضبط ملفات /etc/krb5.conf و/etc/samba/smb.conf بما يتماشى مع إعدادات المجال.

الحادي عشر: إعداد الطابعات ومشاركتها عبر سامبا

لمشاركة الطابعات، يجب تثبيت حزمة CUPS:

bash
sudo apt install cups

وتعديل ملف إعداد سامبا ليتضمن:

ini
[printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no printable = yes [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes write list = root

ثم التأكد من إضافة المستخدمين المخولين للطباعة.

الثاني عشر: استخدام الشهادات الرقمية مع Samba (SMB over TLS)

ابتداءً من الإصدارات الحديثة، يمكن إعداد تشفير TLS باستخدام شهادات X.509:

ini
[global] tls enabled = yes tls keyfile = /etc/samba/private/server.key tls certfile = /etc/samba/private/server.crt tls cafile = /etc/samba/private/ca.crt

يجب إنشاء الشهادات باستخدام openssl أو الحصول عليها من سلطة موثوقة.

جدول: أهم إعدادات الأمان في خادوم سامبا على أوبنتو

عنصر الأمان التوصية
التوثيق استخدام مستخدمين مخصصين، وتعطيل الدخول كضيف
التشفير تفعيل SMB3 أو TLS
التحكم في الوصول ضبط hosts allow وbind interfaces only
جدار الحماية تقييد المنافذ لعنوان الشبكة المحلي فقط
مراقبة السجلات تفعيل log file، استخدام logwatch أو auditd
إدارة محاولات الدخول تكوين fail2ban لمنع محاولات التخمين
إيقاف SMB1 تعيين min protocol = SMB2
الدمج مع Active Directory استخدام Kerberos وWinbind
مشاركة الطابعات تفعيل CUPS وضبط المسارات بدقة
TLS استخدام شهادات رقمية موثوقة لتأمين الاتصال

المراجع